Hi all, 來到第15天,今天就來好好處理如何永久儲存 變色龍雜湊函數所需要使用的 key 吧
不多說直接呈現 code吧
var keyStorageService = new KeyStorageService();
var keyData = keyStorageService.LoadKeyPair();
builder.Services.AddSingleton(keyData.KeyPair);
builder.Services.AddSingleton(keyData.SessionKey);
public class KeyStorageService
{
private const string KeysPath = "~/keys.json";
public KeyData LoadKeyPair()
{
if (File.Exists(KeysPath))
{
return RestoreKeys(KeysPath);
}
var keyData = new KeyData()
{
KeyPair = EccGenerator.GenerateKeyPair(256),
SessionKey = SessionKeyGenerator.GenerateSessionKey()
};
keyData.SaveKeys(KeysPath);
return keyData;
}
private KeyData RestoreKeys(string path)
{
var keyData = File.ReadAllText(path);
return JsonSerializer.Deserialize<KeyData>(keyData)!;
}
}
其中,我們使用了些檔案讀寫的方式來做存放,主要流程為:
今天我們定義好了 key 要怎麼進行存放,且針對有無已存在key file 進行處理。 好了今天先到這。